Project 10 - Due Tue Nov 19 at 23:00
Reading
- Slides and notebooks from the Intro to Recursion and Fruitful Recursion lectures.
- Problems and solutions from Lab 11 (Recursion).
- Think Python, Ch. 5, Sections 5.8–5.10 on recursion, and Think Python, Ch. 6, Sections 6.5–6.9 on fruitful recursion.
Tasks
The instructions for each task:
-
Task 1: Recursive Circles — Create the similar concentric circles to the earlier circles task, using recursion instead of loops. You may complete EITHER this task or the recursive scales task, but you don't have to complete both. For this task, having a partner is optional but recommended.
-
Task 2: Recursive Scales — Create similar musical scales to the earlier scales task, using recursion instead of loops. You may complete EITHER this task or the recursive circles task, but you don't have to complete both. For this task, having a partner is optional but recommended.
- Task 3: Recursive Genetics — Re-implement the functions from the previous genetics task (plus some extra ones) using recursion instead of loops. For this task, having a partner is optional but recommended.
About this Project
These tasks will give you practice with recursion, including fruitful recursion.
You only need to do two tasks: you must do the recursiveGenetics
task,
and then you get to choose whether to do recursiveCircles
or
recursiveScales
. All three tasks ask you to solve a problem you've
solved before, just using recursion instead of loops. Some of the details
are different however, to accommodate the recursive solutions required.
If you want to find a partner to work with for this project, use this Google Sheet to do so.
Reminders
- Remember to download the starter code for each task from the Potluck server.
Time Estimate
Our per-task estimate for this project is 2-4 hours, plus up to an hour of reading.
How to turn in this Project
-
Upload your tasks via the Potluck server by the deadline (Tue Nov 19 at 23:00).
- For recursiveCircles, each team member must submit
recursiveCircles.py
. - For recursiveScales, each team member must submit
recursiveScales.py
. - For recursiveGenetics, each team member must submit
recursiveGenetics.py
.
- For recursiveCircles, each team member must submit
-
Double-check the status of your submitted tasks, since there may be warnings.
-
Reminder: you can submit as many times as you like, and only the most recent submission will count for your grade.
-
If you run into trouble with the submissions server, contact Peter Mawhorter, and include a copy of the file(s) you were trying to submit.
- Check your score for each task and submit revisions if you need to.